[TOC]
1 YKit Mock配置
1.1 设计
- 使用Mockjs
- YKit Mock数据使用 Mockjs, 相应的Mockjs文档和示例
 - Mockjs的语法规范
 - Mockjs数据规则参考mockJSON, FEKit也使用了这个规则
 
 
1.2 YKit Mock启动方式
ykit server启动时如果配置了mock插件会自动启动mock serverykit server mock=false方式启动可以不启动mock server- 如果使用了ykit server并配置了mock,直接访问mock接口无法访问,需要先访问mock文件对应项目的某个资源,让ykit加载到对应的mock配置,这种情况会在项目上一层启动ykit server的时候出现。
 
1.3 YKit Mock配置文件
默认搜索项目根目录下的
mock.js或者mock.json,推荐使用mock.js可以自定义配置文件的路径,在YKit的配置文件
ykit.js或者ykit-xxx.js中修改1
2
3
4
5
6
7
8
9module.exports = {
plugins: [{
name: 'mock',
options: {
confPath: './tests/mockdata/mockconf.js'
}
}],
// ...
};
mock文件支持两种配置方式
FEKit原来支持的方式
key=>value形式, 其中key为路径的匹配规则,value为对应的mock数据指向;pattern=>respondwith形式,其中pattern为路径匹配规则,respondwith为对应的mock数据指向;
1
2
3
4
5
6
7module.exports = {
'/uri/to/api':'relative/path/to/mock/data/file',
rules:[{
pattern: "/uri/pattern/to/match",
respondwith:'relative/path/to/mock/data/file',
}]
}
YKit 增加的方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24module.exports = [{
// pattern:'/api/list.json',
// responder:'./data/listData.json'
}, {
pattern: /^\/api\/(\w+)\.json.*$/,
responder: './data/$1Data.mockjson'
}, {
pattern: /^\/api\/(\w+)\.json.*$/,
responder: './data/$1Data.js'
}, {
pattern: '/api/list.json',
responder: {
"ret": true,
"data": [{
"name": "Li Lei",
"email": "lilei@test.com",
"registerDateTime": "2020-10-01 22:11:11"
}, {
"name": "Han Meimei",
"email": "hanmeimei@test.com",
"registerDateTime": "2020-10-01 22:11:11"
}]
}
}]json文件的配置跟上面直接出的数据一样
mockjson的数据有些区别,如下
1
2
3
4
5
6
7
8
9
10
11
12{
"ret|0-1":true,
"data|2-5":[{
"name":"@last @first",
"email":"@email",
"registerDateTime": "@date('yyyy-MM-dd') @time('HH:mm:ss')"
},{
"name":"@last @first",
"email":"@email",
"registerDateTime": "@date('yyyy-MM-dd') @time('HH:mm:ss')"
}]
}
YKit对jsonp和直接函数的支持
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22module.exports = [{
pattern: '/api/list.json',
responder:function(req,res){ //两个参数
//这里可以有更多其他的处理过程
res.end(JSON.stringify({
"ret": true,
"data": [{
"name": "Li Lei",
"email": "lilei@test.com",
"registerDateTime": "2020-10-01 22:11:11"
}, {
"name": "Han Meimei",
"email": "hanmeimei@test.com",
"registerDateTime": "2020-10-01 22:11:11"
}]
}))
}
},{
pattern: '/api/list.json',
responder: './data/listData.json',
jsonp:'jsCallback' //配置callbackKey
}]
- YKit Mock比 FEKit Mock强大的地方
- 可以支持多个工程的mock文件,fekit只能同时用一个
 - YKit匹配的URL支持正则匹配到数据路径,这样可以批量造数据而配置一个规则,不用一个一个配
 - Mockjs 比 MockJSON强大得多,支持中文mock数据,可谓青出于蓝而胜于蓝
 
 
2 YKit Proxy 配置
2.1 设计
- YKit Proxy 使用了蛟神写的一个牛逼的代理服务Jerry Proxy,主要功能
- HOST 管理
 - 代理服务
 - 请求日志和断点
 - 网络限速
 
 
2.2 YKit Proxy 代理配置
2.2.1 Jerry Proxy 启动
- 使用
sudo ykit server -x启动带代理服务的ykit server - 使用
ykit server启动日志中的[JerryProxy] Available on: http://127.0.0.1:\d+/jerry中的URL访问代理服务器的界面 
2.2.2 Jerry Proxy 配置
2.2.2.1 服务器组配置
- 这里配置环境以及每套环境对应的机器,方便在HOST管理的地方被引用到
 
2.2.2.2 URL MAP
- 请求转发的配置,支持转到本地文件,或者转发到其他页面
 
2.2.2.3 代理面板
- 配置是否使用HTTPS代理和网络限速
 - 配置HOST分组,Jerry Proxy会为每一个发现的YKit工程新建一个对应的分组
 - HOST 规则的配置,参考添加规则的说明
 
3 代码地址
- 所有的代码可以在**这里**找到。
 
4 参考资料
最后更新: 2022年03月02日 03:32
原始链接: http://rawbin-.github.io/dev-tools/2017-07-03-ykit-mock-ref/